Generally, server systems use redundant links for more reliable network operation to communicate with a disk array device. A redundant path will replace a working connection path in the event of its failure, not to disrupt the ongoing communication (see, for example, Japanese Laid-Open Patent Publication No. 6-110800).
Fibre Channel is known as one of the data transfer techniques used to connect servers with disk array devices, particularly suitable for performance-oriented server systems. Fibre Channel uses optical fiber cables or coaxial cables capable of transporting signals at up to 200 megabytes per second, so as to realize high-speed data transfer over a maximum distance of 10 kilometers.
FIG. 27 illustrates a typical structure of Fibre Channel connection between a server and a disk array device. Specifically, a server 700 is connected to a disk array device 900 via switches 800a and 800b. 
An application 710 may request a disk I/O operation, which involves communication with the disk array device 900. This communication is executed under the control of I/O multipath control software 720 and Fibre Channel drivers 740a and 740b on the server 700. Specifically, the I/O multipath control software 720 controls communication paths between the server 700 and disk array device 900, while the Fibre Channel drivers 740a and 740b control Fibre Channel adapters 730a and 730b that provide physical links with the disk array device 900.
The Fibre Channel drivers 740a and 740b receive an I/O initiation request from their respective upper-level entities, i.e., target drivers 750a and 750b. Responsive to such requests, the Fibre Channel drivers 740a and 740b offer data management (FC-PH layer of Fibre Channel communication) of Exchanges performed for initiating I/O operations on the disk array device 900 over Fibre Channel, as well as management of I/O initiation requests at SCSI level.
The above Fibre Channel system is supposed to detect disruption of a communication path between the server 700 and disk array device 900 and switch the failed path to a redundant path to minimize the communication downtime.
FIG. 28 illustrates a conventional way of processing, depicting only one of the two communication paths.
In the illustrated conventional process, the Fibre Channel driver 740a sends an I/O abort request to the disk array device 900 upon receipt of an I/O abort request (abort) from a target driver 750a, which is positioned above the Fibre Channel driver 740a. The Fibre Channel driver 740a then waits for a response (ACC) to this I/O abort request for some time. There may be no response from the disk array device 900 due to its own failure or some problem in the corresponding connection path. In the case where the response wait period expires for this reason, the Fibre Channel driver 740a sends an I/O error to its upper-level entity. It is not appropriate, however, to perform this error notification immediately upon expiration of the response wait period since a response may experience a transmission line delay. The Fibre Channel driver 740a thus performs management of Exchange records during the wait period including the transmission line delay before returning an I/O error to the upper-level entity. As a result, the conventional process takes much time to switch I/O paths in the event of error, besides requiring a longer wait time for I/O operations initiated by the application 710.
For more quick path switching, the Fibre Channel driver 740a may be configured to perform the following control method.
FIG. 29 illustrates another conventional process.
(1) Upon receipt of an I/O abort request from the target driver 750a, the Fibre Channel driver 740a submits an I/O abort request to the disk array device 900.
(2) The Fibre Channel driver 740a returns an error notice to the target driver 750a as a response to its I/O abort request.
(3) Assuming that the disk array device 900 may not respond, the Fibre Channel driver 740a releases the management memory area that has been allocated for the I/O initiation request since it is no longer necessary.
(4) The Fibre Channel driver 740a waits for the disk array device 900 to return a response (BA_ACC) to the I/O abort request.
(5) If no response is received during the wait period of (4), then the Fibre Channel driver 740a extends the waiting period by the time determined taking into consideration a transmission line delay.
(6) After the time of (5), the Fibre Channel driver 740a releases exchange initiation data (FC-PH layer).
The foregoing method can reduce the time during which the Fibre Channel driver 740a has to manage I/O initiation requests.
However, once I/O is placed on a Fibre Channel link, the identifier (e.g., OX_ID) of Fibre Channel connection used in that I/O has to be maintained even after an I/O abort request is sent to the disk array device 900.
Accordingly, the Fibre Channel driver 740a manages its records of Exchanges (FC-PH layer) throughout the response wait period of an I/O abort request, as well as the wait period derived from transmission line delay, in an attempt to prevent such identifiers from being used improperly. This may, however, result in excessive reservation of identifiers and consequent exhaustion of such resources, which could delay the start of a path switching process.
In addition to the above, the I/O multipath control software 720 may retry an I/O operation of the disk array device 900 repetitively after an abort process is invoked. For example, some failure in a path could produce repetitive operations on the failed portion, resulting in a delay of path switching.